package com.jiayou.game

import com.jiayou.socket.GameSocket
import javax.websocket.Session

/**
@author 李 双
@data   2020-09-06  11:19
@info
 */
interface IPlayer<Message> {

    /**
     * 玩家操作
     * @param message -> 游戏数据
     */
    fun sendMessage(message: Message)


    /**
     * 投降
     */
    fun surrender()


    /**
     * 匹配玩家
     */
    fun readyGame()


    /**
     * 取消匹配
     */
    fun cancleReadyGame()

    /**
     * 能改变状态
     * tip 在匹配过程中为了保证线程安全，必须要设置状态位
     */
    fun canChangeState()


    /**
     * 不能改变状态
     * tip 在匹配过程中为了保证线程安全，必须要设置状态位
     */
    fun cantChangeState()


    /**
     * 游戏结束
     */
    fun gameOver()

}